package com.crazy.crazycommon.utils;

import java.util.Calendar;
import java.util.Date;

/**
 * @Date: 2024-05-07-14:19
 * @Author: Zheng Zeliang
 * 用来计算确认时间
 */
public class ConfirmDateUtils {
    // 计算预计确认时间的方法
    public static Date calculateConfirmTime(Date time) {
        // 创建 Calendar 对象
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(time);

        // 如果订单时间是周五，则预计确认时间在下一个周一
        if (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.FRIDAY) {
            calendar.add(Calendar.DAY_OF_MONTH, 3); // 周五加3天到周一
        } else {
            calendar.add(Calendar.DAY_OF_MONTH, 1); // 其他情况加1天
        }

        // 设置预计确认时间的小时、分钟、秒为交易所的开始时间（假设为上午 9 点）
        calendar.set(Calendar.HOUR_OF_DAY, 9);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);

        // 返回计算后的预计确认时间
        return calendar.getTime();
    }
}
